package worker;

import java.io.Serializable;
import java.util.ArrayList;

public class Backup extends MaillonManager implements Serializable {

	private static final long serialVersionUID = 6153845891574826144L;
	
	
	public Backup () { super (); }
	public Backup (ArrayList<Maillon> list) { super(list); }
	public Backup (ArrayList<Maillon> list, int nbBackup) { super(list, nbBackup); }
	public Backup (Master m) { super(m.getMaillons(), m.getNbBackup()); }
	
	
	
	/**
	 * Met a jour le backup en fonction d'un nouveau master. 
	 * @param m
	 */
	public void updateFromMaster (Master master) {
		this.maillons = master.getList();
		this.nbBackup = master.getNbBackup();
	}
	
	
	/**
	 * Restaure le master. 
	 */
	public Master restore() { 
		return new Master (maillons, nbBackup); 
	}
	
	
	
//	/**
//	 * Ajoute un nouveau worker libre par d�faut et le r�f�rence. 
//	 * @param index, w
//	 */
//	public void addWorker (int index, Worker w) {
//		workers.add(index, new Maillon (w, true));
//	}
//	
//	/**
//	 * Supprime un worker par sa r�f�rence. 
//	 * @param index, w
//	 */
//	public void delWorker (int index) {
//		workers.remove(index);
//	}
//
//	/**
//	 * Restaure le master. 
//	 */
//	public Master restoreMaster () { 
//		return new Master (workers, nbBackup); 
//	}
//	
//	/**
//	 * Met a jour les workers en fonction d'un nouveau master. 
//	 * @param m
//	 */
//	public void updateFromMaster (Master m) {
//		workers = m.getMaillons();
//		nbBackup = m.getNbBackup();
//	}
//	
//	/**
//	 * Rend libre un worker (passe � true). 
//	 * @param w
//	 */
//	public void freeWorker(Worker w) {
//		setWorker(w, true);
//	}
//	
//	/**
//	 * Rend libre une liste de worker (passent � true). 
//	 * @param list
//	 * Prend une liste de worker en parametre
//	 */
//	public void freeWorkers(ArrayList<Worker> list) {
//		for (Worker w : list) freeWorker(w);
//	}

}
